package br.com.ro.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.ro.model.dao.ClienteDao;
import br.com.ro.model.entity.Cliente;
import br.com.ro.util.BeanFactory;
import br.com.ro.util.Utils;

@ManagedBean(name = "clienteBean")
@ViewScoped
public class ClienteBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private Cliente cliente = new Cliente();
	private List<Cliente> listaClientes = new ArrayList<Cliente>();
	private ClienteDao clienteDao = (ClienteDao) BeanFactory.getBean("clienteDao", ClienteDao.class);

	public ClienteBean() {
		atualizarTela();
	}

	/**
	 * Limpa os campos input e atualiza a lista de usuarios cadastrados
	 */
	private void atualizarTela() {
		cliente = new Cliente();
		listaClientes = clienteDao.listAll();
	}

	public void limpar() {
		cliente = new Cliente();
	}

	/**
	 * Grava novo registro ou atualiza um registro
	 */
	public void gravar() {
		
		Object[] obj = { getCliente().getNome(), "Nome Cliente"};
		if (Utils.getValilador().validar(obj))
			return;

		clienteDao.save(getCliente());
		atualizarTela();
	}

	/**
	 * Exclui um registro da tabela usuario
	 */
	public void excluir() {
		clienteDao.delete(getCliente());
		atualizarTela();
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public List<Cliente> getListaClientes() {
		return listaClientes;
	}

	public void setListaClientes(List<Cliente> listaClientes) {
		this.listaClientes = listaClientes;
	}

}
